A factor contributing to the rapid growth of smartphones and other mobile-capable devices is the incorporation of sensors into these devices. Mobile devices can be equipped with many sensors, such as a geolocation sensor (e.g., GPS—global positioning system), a camera, a microphone, an accelerometer, a proximity sensor, combinations thereof, and so on. This variety of sensors has given rise to a huge increase in mobile applications.
It is relatively easy for an application to fabricate or lie about readings from these sensors. For example, users can easily lie about locations by fabricating or altering readings from GPS sensors, or users can modify the pictures taken by cameras. Thus, the data obtained from these sensors is not considered to be “trustworthy”, in that the readings may have been altered (e.g., by a user) before being transmitted remotely to a server or to the cloud (clusters of servers disposed on the Internet). As a result, developers are reluctant to build mobile applications where users have an incentive and the ability to cheat.